This is the easiest way to customize a Direct to Java Client application. The Direct to Web Assistant is an easy-to-use tool that is integrated into a running client application. It allows you to perform the most common customizations, directly test them while the application is running, and save them in your project. To see the kind of customizations you can do with the Assistant, work through Started with Direct to Java Client, There are other methods of customizing a Direct to Java Client application besides using the Assistant, but they are more advanced and are covered in later chapters.
Use this technique to categorize entities as main, enumeration, or other; to customize the query, list, form, and identify properties; to customize windows, dialogs, and other widgets.
All the information about how to configure a Direct to Java Client application is stored in the form of rules. The default rules generate the default Direct to Java Client application. Adding new rules that override or supplement the default rules is an easy to maintain approach that doesn't interfere with your use of the Assistant.
This technique is useful to configure many different controllers with a single simple rule. For more information on when and how to write custom rules, see Writing Custom Rules.
Freezing XML allows you to explicitly state the result of a rule system request. In other words, instead of using the rule system to provide XML, the controller factory uses XML that you supply to generate the controller hierarchy.
This approach is less flexible than the previous techniques. Changes to the set of rules and to an application's models don't have an effect on the controller hierarchy for the frozen XML. You have to edit the XML by hand to keep it up to date with other project changes.
Nevertheless, it's sometimes useful to freeze XML. For example, it can be difficult to express a particular aspect of a controller hierarchy using rules. Also, it's sometimes easier to understand how to modify frozen XML than it is to write new rules or source code.
You can also consider freezing XML for problematic windows whose XML generation takes too long. If you do this, be sure to wait until the end of the development process so you postpone the maintenance issues as long as possible.
For more information on this technique, see Freezing XML.
Freezing nib files allows you to completely specify user interface layout by providing a nib file. This approach has many disadvantages: maintenance is more difficult, platform specific layout is harder to achieve, EOModel changes can't be picked up as easily, and so on. Consequently, freezing nib files should be used very carefully.
Nevertheless, it's sometimes useful to specify portions of the user interface with frozen nib files. For example, non-engineers such as graphic and user interface designers can modify nib files directly to get fine grained control over the interface.
For more information on this approach, see Freezing Nib Files.